Virtualization software, commonly referred to as a hypervisor, enables multiple virtual machines to be executed on a host hardware platform. The hypervisor manages the allocation of computing resources to each virtual machine on the host. An external management server may be used to provision, update, patch, and secure the virtual machines across multiple hosts. The hypervisor restarts virtual machines on the host, e.g., in response to a reboot of the host, a lack of a heartbeat, a request from a virtual machine for remediation, a request from the external management server, etc.
For example, the hypervisor may receive a heartbeat data signal from each virtual machine as an indication of the virtual machine operating normally. If the hypervisor has not received the heartbeat for a period of time, it may be implied that the virtual machine is having a problem. After the period of time has expired, the hypervisor will restart the virtual machine in an effort to return the virtual machine to normal operation.
Virtual machines may be dependent upon other virtual machines, network connections, or storage devices to run properly. For example, a first VM may provide a service that is dependent upon a second VM that manages a database. Restarting the first VM as a part of a corrective action without the second VM running may lead to errors with the first VM.